﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MailMarketing.Models.Entity;
using MailMarketing.ViewModel;
using MailMarketing.Models.Repositorio;

namespace MailMarketing.Controllers
{
    public class CampanhaController : Controller
    {
        private RepositorioCampanhas objRepositorioCampanhas;
        private RepositorioRemetentes objRepositorioRemetentes;

        public CampanhaController()
        {
            this.objRepositorioCampanhas = new RepositorioCampanhas();
            this.objRepositorioRemetentes = new RepositorioRemetentes();
        }

        //
        // GET: /Campanha/

        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Index()
        {
            List<Campanha> campanhas = objRepositorioCampanhas.todos();
            return View(campanhas);
        }

        //
        // GET: /Campanha/Novo
        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Novo()
        {
            CampanhaViewModel campanha = new CampanhaViewModel
            {
                campanha = new Campanha(),
                remetentes = objRepositorioRemetentes.todos()
            };
            return View(campanha);
        } 

        //
        // POST: /Campanha/Novo
        [HttpPost]
        [Authorize(Roles = "Administrador,Marketing")]
        public ActionResult Novo(CampanhaViewModel viewCampanha)
        {
            try
            {
                objRepositorioCampanhas.adicionar(viewCampanha.campanha);
                return RedirectToAction("Index");
            }
            catch
            {
                return View(viewCampanha);
            }
        }
    }
}
